package com.weixing.mall.provider.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weixing.mall.core.support.auth.SysAuth;
import com.weixing.mall.provider.model.domain.AgentWithdraw;
import com.weixing.mall.provider.model.dto.AgentWithdrawDto;
import com.weixing.mall.provider.model.enums.AgentWithdrawAuditEnum;
import com.weixing.mall.provider.model.query.AgentWithdrawQuery;
import com.weixing.mall.provider.model.vo.AgentWithdrawSettleVo;
import com.weixing.mall.provider.model.vo.AgentWithdrawVo;
import com.weixing.mall.provider.model.vo.ApplyWithdrawVo;
import com.weixing.mall.provider.model.vo.FrontAgentWithdrawSettleVo;

import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 代理商模块-代理商提现表 服务类
 * </p>
 *
 * @author Small
 * @since 2019-11-18
 */
public interface IAgentWithdrawService extends IService<AgentWithdraw> {

    IPage<AgentWithdrawVo> selectListOfPage(Page page, AgentWithdrawQuery agentWithdrawQuery, SysAuth auth);

    AgentWithdrawSettleVo selectAgentSettle(Long id);

    void audit(Long id, AgentWithdrawAuditEnum auditResult, SysAuth uid,String auditRemark);

    IPage selectAgentOrderList(Page initMpPage, Long agentId);

    FrontAgentWithdrawSettleVo withdrawInfo(String currentTime, Long agentId);

    void applyWithdraw(ApplyWithdrawVo applyWithdrawVo,Long agentId);

    HashMap<String, Object> withdrawRecord(Page initMpPage, Long agentId);
    HashMap<String, Object> withdrawRecord(Page initMpPage);

    List<String> selectBankHistory(Long agentId);

    void save(AgentWithdrawDto agentId, SysAuth uid);
}
